import request from '../../utils/request'
import * as loginType from './type'



//登录相关的api
const apiPath = {
    login: '/login/cellphone',
    logout: '/logout',
    code: '/captcha/sent',
    qr: '/login/qr/key',
    qrcreate: "/login/qr/create",
    qrcheck: "/login/qr/check",
    state:"/login/status", 
}

/**
 * 说明 : 登录有两个接口
 * 接口地址 : /login/cellphone
 * @param params.phone 手机号码
 * @param params.password 密码
 * @param params.countrycode 可选参数 ; 国家码，用于国外手机号登陆，例如美国传入：1
 * @returns 返回当前登录的用户信息
 */
export function login(params: loginType.LoginParams) {
    return request({
        url: apiPath.login,
        method: 'get',
        params
    })
}
/**
 * 说明 : 调用此接口 ,传入手机号码, 可发送验证码
 * @param 必选参数 : phone: 手机号码
 * @param 可选参数 : ctcode: 国家区号,默认86即中国
 */
export function LoginCode(params: loginType.LoginCodeParams) {
    return request({
        url: apiPath.code,
        method: 'get',
        params
    })
}

/**
 * 说明 : 退出登录
 * 接口地址 : /logout
 * @returns 
 */
export function logoutApi() {
    return request({
        url: apiPath.logout,
        method: 'get',
    })
}

/**
 * 说明 : 调用此接口 ,传入手机号码和验证码,密码,昵称, 可注册网易云音乐账号(同时可修改密码)
 * @param params.captcha : 验证码
 * @param params.phone : 手机号码
 * @param params.password: 密码
 * @param params.nickname: 昵称
 * @returns 
 */
export function logout(params: loginType.LogoutParams) {
    return request({
        url: apiPath.logout,
        method: 'get',
        params
    })
}


/**
 * 说明：调用此接，生成一个key
 */
export function qr() {
    return request({
        url: apiPath.qr,
        method: "get"
    })
}
/**
 * 说明：调用此接口，生成登录二维码
 * @param params.key：二维码的key
 * @param params.qrimg：传入后会返回二维码图片的base64编码
 */
export function qrcreate(params: loginType.QrParams) {
    return request({
        url: apiPath.qrcreate,
        method: "get",
        params
    })
}
/**
 * 说明：此接口用来检测二维码的扫描状态
 * @param params.key：有第一个接口生成 
 * */
export function qrcheck(params: loginType.QrParams) {
    return request({
        url: apiPath.qrcheck,
        method: "get",
        params,
    })
}


export function state(){
    return request({
        url:apiPath.state,
        method:"get", 
    })
}